/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Classes;

import java.util.ArrayList;
import java.util.Objects;

/**
 * Représente un restaurant qui peut livrer
 * @author userinsta
 */
public class RestaurantModeLivreur extends Restaurant {
    
    private Livraisons _livraisons;
    /**
     * Constructors
     */
    public RestaurantModeLivreur(){}
    
     public RestaurantModeLivreur(Adresse adresse, String nom, Stock stock, Immobilisations immobilisations, Achats achats, Ventes ventes, Reservations reservations, ArrayList<Salarie> salaries, Livraisons livraisons) {
         super(adresse, nom, stock, immobilisations, achats, ventes, reservations, salaries);
         this.setLivraisons(livraisons);
     }
     /**
      * Getters and Setters
      * @return 
      */
    public Livraisons getLivraisons() {
        return _livraisons;
    }

    public void setLivraisons(Livraisons livraisons) {
        this._livraisons = livraisons;
    }

    /**
     * Equals
     * @param obj
     * @return true si equals 
     */
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final RestaurantModeLivreur other = (RestaurantModeLivreur) obj;
        if(!super.equals(other)){
            return false;
        }
        if (!Objects.equals(this._livraisons, other._livraisons)) {
            return false;
        }
        return true;
    }
 
    
    /**
     * Permet d'ajouter des méthodes à ce restaurant
     * @param strategy 
     */
    public void run(StrategyBase strategy){
        strategy.run(this);
    } 
}
